1. Field of the Invention
The present invention relates generally to imaging, and more particularly to a method for generating image data for use in an imaging apparatus, including performing a combined format and transpose operation.
2. Description of the Related Art
In prior art, ink jet printing systems produce images by printing patterns of dots on a sheet of print media, such as paper. Such systems typically include two main mechanisms for determining the location of dots on the page, namely, a halftone mechanism and a formatting mechanism. Such mechanisms may be implemented, for example, in software, firmware, hardware, or a combination thereof, and may reference one or more lookup tables.
The halftone mechanism compensates for the inability of an ink jet printer, i.e., a binary printer, to print a continuous range of tones. For example, a binary printer can only produce colors by either printing or not printing a dot of ink. By printing patterns of various percentages of ink in a given area between zero percent and 100 percent ink, in effect many shades can be produced. Thus, halftoning involves the eventual pattern of dots placed on a page as a result of the printing process and the halftone pattern is visible to the user after the page is completely rendered.
Once the halftone mechanism has decided where the dots of ink are to be placed on the page, the formatter mechanism generates color raster data, e.g., cyan, magenta, yellow, and black (CMYK) raster data. Traditionally, during print data generation the CMYK rasters are first formatted for the targeted printhead and placed into printer main memory. A transpose operation, which is separate and independent from the format operation, then reads the stored formatted image data from the printer main memory, performs the transpose function, and sends the transposed image data to the printhead logic.
As used herein, the term “format”, and derivatives thereof, refer to an operation in which halftone image data is converted for printing on a particular pass of a particular printhead over the sheet of print media. Also, as used herein, the term “transpose”, and derivatives thereof, refers to an operation where the formatted image data is rearranged to meet the requirements of the printhead logic of the printhead used in performing the printing operation.
The transpose operation may be a direct memory access (DMA) bandwidth intense operation and usually becomes a cost versus performance tradeoff. For instance, it may be desirable to use a 32×32 bit transpose array (e.g., a bit accessible flip-flop array) to allow for one word in and one word out memory accesses. Acceptable DMA bandwidth requirements are met in this configuration at a relatively low cost in logic area. However, if better performance was needed then a 64×64 array might be used to allow for two words in and two words out from/to memory. This would allow for a 50 percent increase in DMA performance but a greater than 400 percent increase in logic area or cost.
As the amount of data needed to drive high-resolution printheads increases, it is important to find ways to either minimize the data or minimize the memory accesses needed during processing without substantially increasing the logic needed.